package org.aspire.game.bg;

import org.aspire.data.Renderer;
import org.aspire.game.Background;
import org.aspire.graphics.Color;
import org.aspire.math.geom.Dimension;

/******************************************************************************
 * A solid color background.
 * 
 * @author Golden T Studios (GTGE)
 * @author JPACarabuena
 *****************************************************************************/
public class ColorBackground extends Background {

	// ========================================================================
	// Constants
	// ========================================================================

	// ========================================================================
	// Static Methods
	// ========================================================================

	// ========================================================================
	// Fields
	// ========================================================================

	/**************************************************************************
	 * The solid color for this background.
	 *************************************************************************/
	private Color color;

	// ========================================================================
	// Constructors
	// ========================================================================

	public ColorBackground(Color color) {
		super();
		this.color = color;
	}

	public ColorBackground(Color color, Dimension dimension) {
		super(dimension);
		this.color = color;
	}

	public ColorBackground(Color color, int width, int height) {
		super(width, height);
		this.color = color;
	}
	
	// ========================================================================
	// Getters & Setters
	// ========================================================================

	public Color getColor() {
		return this.color;
	}
	
	public void setColor(Color color) {
		this.color = color;
	}
	
	// ========================================================================
	// Override Methods
	// ========================================================================

	@Override
	public void render(Renderer r) {
		r.setColor(this.color);
		r.fillRect((int) this.getX(), (int) this.getY(), 
				this.getWidth(), this.getHeight());
	}
	
	// ========================================================================
	// Methods
	// ========================================================================

	// ========================================================================
	// Inner & Anonymous Classes
	// ========================================================================
}